/*
 * 文件名：IDistrictInfoService.java
 * 版权：Copyright by www.huawei.com
 * 描述：
 * 修改人：Administrator
 * 修改时间：2015年7月14日
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */

package com.zcsy.manage.service.system;

import java.util.List;

import com.zcsy.manage.model.system.DistrictInfo;

/**
 * @Title: IDistrictInfoService.java
 * @Package： com.zcsy.shop.service.common 
 * @Description: 地理信息service层接口类
 *
 * @author caiyinli 13277030520@163.com
 * @Copyright: 2015 武汉中财数元信息技术有限公司 All rights reserved.
 * @date 2015年7月14日
 * @version 1.0
 * @see JDK1.7.0_75
 * @since
 */

public interface IDistrictInfoService {

    /**
     * @Description 根据区域编号、区域名称综合查询区域信息<br>
     * 
     * @param districtInfo 区域信息对象
     * @return 区域信息集合
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月14日
     * @see 
     */
    public List<DistrictInfo> getDistrictInfoByKeyWord(DistrictInfo districtInfo);
    
    /**
     * @Description 插入区域信息<br>
     * 
     * @param districtInfo 区域信息对象
     * @return  插入结果： 1、成功，0、失败
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月14日
     * @see 
     */
    public int insert(DistrictInfo districtInfo);
    
    /**
     * @Description 更新区域信息<br>
     * 更新区域信息包括：更新区域编号、区域名称、区域级别、状态<br>
     * @param districtInfo 区域信息对象
     * @return  操作结果  1、成功，0、失败
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月14日
     * @see 
     */
    public int updateByPrimaryKey(DistrictInfo districtInfo);
    
    /**
     * @Description 根据id删除区域信息，可以一次性删除多条记录<br>
     * 
     * @param ids 区域信息id
     * @return 操作结果： 1、成功，0、失败
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月14日
     * @see 
     */
    public int deleteByPrimaryKeys(Integer[] ids);
    
    /**
     * @Description 根据区域级别取出区域信息<br>
     * 
     * @param level 类型等级
     * @return  区域信息集合
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月14日
     * @see 
     */
    public List<DistrictInfo> getDistrictInfoByLevel(Integer level);
    
    /**
     * @Description 根据上级区域名称取出区域子类型集合<br>
     * 
     * @param parentName 上级区域名称
     * @return 区域信息集合
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月14日
     * @see 
     */
    public List<DistrictInfo> getDistrictInfoByParentName(String parentName,Integer level);
    
    /**
     * @Description 根据id取区域信息<br>
     * 
     * @param id 区域信息id
     * @return 返回区域信息对象
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月14日
     * @see 
     */
    public DistrictInfo getDistrictInfoById(Integer id);
    
    /**
     * @Description 新增或修改区域信息<br>
     * 
     * @param districtInfo  区域信息
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月14日
     * @see 
     */
    public void saveOrUpdateDistrictInfo(DistrictInfo districtInfo);
    
    /**
     * @Description 获取所有的区域信息<br>
     * 
     * @return  区域信息集合
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月14日
     * @see 
     */
    public List<DistrictInfo> getAllDistrictInfo(); 
    
    /**
     * @Description 切换区域信息状态<br>
     * 
     * @param id 区域信息Id
     * @param state 区域信息状态 
     * @return 
     * @author caiyinli 13277030520@163.com
     * @date 2015年7月9日
     * @see 
     */
    public int updateDistrictInfoState(int id,int state);
    
    /**
     * @Description 根据区域名和等级称获取区域对象<br>
     * 
     * @param name 区域名称
     * @return  区域对象
     * @author tanghan barbadosliy@163.com
     * @date 2015年7月29日
     * @see 
     */
    public DistrictInfo getDistrictInfoByName(String parentName,Integer level);

	List<DistrictInfo> getDistrictInfoByParentId(Integer parentId);
	
    /**
     * @Description <br>
     * 1、…<br>
     * 2、…<br>
     * 
     * @return 
     * @author caiyinli 13277030520@163.com
     * @date 2016年6月27日
     * @see 
     */
    public List<DistrictInfo> getProvincesAndcities();
   
}
